﻿/*************************************************************************************

- CLR版本：        4.0.30319.42000
- 类 名 称：       IoSet
- 机器名称：       YTE
- 命名空间：       LD.Tool.BC.IoSet
- 文 件 名：       IoSet
- 创建时间：       2022/7/31 17:43:47
- 作    者：       YTE
- 说   明：
- 修改时间：
- 修 改 人：
  *************************************************************************************/

using LD.BC;
using LD.Host;
using System;
using System.Linq;

namespace LD.Tool
{

    [Tool(FrmParam = "ToolIOSetFrm", Text = "IO设置", ToolType = ToolEnum.BC)]
    class ToolIoSet : BaseTool
    {
        public override OpResult Execute(TB_Tool model)
        {
            stopwatch.Start();
            isSuccess = false;
            try
            {
                Log(model, "启动", LogLevel.一般);
                var tool = Newtonsoft.Json.JsonConvert.DeserializeObject<IoSet>(model.Param);
                if (tool != null)
                {
                    var point = BcFactory.Instance.Config.IoList.Where(p => p.IoType == 1 && p.Name == tool.IoName).FirstOrDefault();
                    if (point != null)
                    {
                        BcFactory.Instance.Control.SetOut((ushort)point.No, (ushort)tool.Low_Hig);
                        if (BcFactory.Instance.Control.GetOut(point.No) == tool.Low_Hig)
                            isSuccess = true;
                        else
                            isSuccess = false;
                    }
                }
            }
            catch (Exception ex)
            {
                Log(model, ex.Message, LogLevel.严重);
            }
            finally
            {
                stopwatch.Stop();
            }
            return new OpResult() { IsSuccess = isSuccess, Message = message, ExecuteTime = stopwatch.ElapsedMilliseconds };

        }
    }
}
